// 定义包名为 com.jlnk.androiduidemo.Adapter
package com.jlnk.androiduidemo.Adapter;

// 导入Android开发所需的库和组件
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.jlnk.androiduidemo.CourseActivity; // 导入CourseActivity类
import com.jlnk.androiduidemo.R; // 导入资源类
import com.jlnk.androiduidemo.entity.Course; // 导入Course实体类

import java.util.List; // 导入List接口

// 定义一个继承自 ArrayAdapter<Course> 的类 CourseArrayAdapter，用于为ListView提供数据和视图
public class CourseArrayAdapter extends ArrayAdapter<Course> {

    // 构造函数，接收一个CourseActivity的上下文和课程列表
    public CourseArrayAdapter(CourseActivity context, List<Course> courses) {
        super(context, 0, courses); // 调用父类的构造函数，传入上下文和课程列表
    }

    // getView 方法是适配器的核心，用于为每个列表项创建和绑定视图
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // Get the data item for this position 根据位置获取数据项
        Course course = getItem(position); // 获取当前位置的课程对象

        // Check if an existing view is being reused, otherwise inflate the view
        // 检查是否有正在使用的现有视图，如果没有，则进行视图填充
        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_course, parent, false);
            // 如果convertView为null，则使用LayoutInflater来填充item_course布局
        }

        // Lookup view for data population
        // 查找需要填充数据的视图
        TextView tvCourseName = convertView.findViewById(R.id.tvCourseName);
        TextView tvCourseId = convertView.findViewById(R.id.tvCourseId);
        TextView tvCourseTeacher = convertView.findViewById(R.id.tvCourseTeacher);
        TextView tvCourseClass = convertView.findViewById(R.id.tvCourseClass);
        TextView tvCourseTime = convertView.findViewById(R.id.tvCourseTime);

        // Populate the data into the template view using the data object
        // 使用数据对象将数据填充到模板视图中
        tvCourseName.setText("课程名称：" + course.getCourseName()); // 设置课程名称
        tvCourseId.setText("课程编号：" + course.getCourseId()); // 设置课程编号
        tvCourseTeacher.setText("任课教师：" + course.getCourseTeacher()); // 设置任课教师
        tvCourseClass.setText("学习班级：" + course.getCourseClass()); // 设置学习班级
        tvCourseTime.setText("课程学习：" + course.getCourseTime()); // 设置课程学习时间

        // Return the converted view to be inserted into the list
        // 返回转换后的视图，以便将其插入到列表中
        return convertView;
    }
}